using System;
using System.Data.SqlTypes;

namespace EntityObjectLayer
{
    [Serializable]
    public class BEPupil
    {
        #region Class Member Declarations

        private SqlBoolean m_bGender;
        private DateTime m_daBirth, m_daEnterDate;
        private DateTime m_daReleaseDate;
        private SqlInt32 m_iFatherAge;
        private SqlInt32 m_iMotherAge;
        private SqlString m_sAddress;
        private SqlString m_sBirthPlace;
        private SqlString m_sClassID,
                          m_sClassIDOld;

        private SqlString m_sEthnicGroup;
        private SqlString m_sFatherJob;
        private SqlString m_sFatherName;
        private SqlString m_sFullName;
        private SqlString m_sMotherJob;
        private SqlString m_sMotherName;
        private SqlString m_sNativePlace;
        private SqlString m_sParentEmail;
        private SqlString m_sPhone;
        private SqlString m_sPupilID;
        private SqlString m_sStatus;
        private SqlString m_sPicLink;

        #endregion

        #region Class Property Declarations

        public SqlString sPupilID
        {
            get { return m_sPupilID; }
            set
            {
                SqlString sPupilIDTmp = value;
                if (sPupilIDTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sPupilID", "sPupilID can't be NULL");
                }
                m_sPupilID = value;
            }
        }


        public SqlString sFullName
        {
            get { return m_sFullName; }
            set
            {
                SqlString sFullNameTmp = value;
                if (sFullNameTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sFullName", "sFullName can't be NULL");
                }
                m_sFullName = value;
            }
        }


        public SqlString sClassID
        {
            get { return m_sClassID; }
            set
            {
                SqlString sClassIDTmp = value;
                if (sClassIDTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sClassID", "sClassID can't be NULL");
                }
                m_sClassID = value;
            }
        }

        public SqlString sClassIDOld
        {
            get { return m_sClassIDOld; }
            set
            {
                SqlString sClassIDOldTmp = value;
                if (sClassIDOldTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sClassIDOld", "sClassIDOld can't be NULL");
                }
                m_sClassIDOld = value;
            }
        }


        public SqlBoolean bGender
        {
            get { return m_bGender; }
            set
            {
                SqlBoolean bGenderTmp = value;
                if (bGenderTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("bGender", "bGender can't be NULL");
                }
                m_bGender = value;
            }
        }


        public SqlString sBirthPlace
        {
            get { return m_sBirthPlace; }
            set
            {
                SqlString sBirthPlaceTmp = value;
                if (sBirthPlaceTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sBirthPlace", "sBirthPlace can't be NULL");
                }
                m_sBirthPlace = value;
            }
        }


        public DateTime daBirth
        {
            get { return m_daBirth; }
            set
            {
                
                m_daBirth = value;
            }
        }


        public SqlString sNativePlace
        {
            get { return m_sNativePlace; }
            set
            {
                SqlString sNativePlaceTmp = value;
                if (sNativePlaceTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sNativePlace", "sNativePlace can't be NULL");
                }
                m_sNativePlace = value;
            }
        }


        public SqlString sAddress
        {
            get { return m_sAddress; }
            set
            {
                SqlString sAddressTmp = value;
                if (sAddressTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sAddress", "sAddress can't be NULL");
                }
                m_sAddress = value;
            }
        }


        public SqlString sPhone
        {
            get { return m_sPhone; }
            set
            {
                SqlString sPhoneTmp = value;
                if (sPhoneTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sPhone", "sPhone can't be NULL");
                }
                m_sPhone = value;
            }
        }


        public SqlString sEthnicGroup
        {
            get { return m_sEthnicGroup; }
            set
            {
                SqlString sEthnicGroupTmp = value;
                if (sEthnicGroupTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sEthnicGroup", "sEthnicGroup can't be NULL");
                }
                m_sEthnicGroup = value;
            }
        }


        public SqlString sFatherName
        {
            get { return m_sFatherName; }
            set
            {
                SqlString sFatherNameTmp = value;
                if (sFatherNameTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sFatherName", "sFatherName can't be NULL");
                }
                m_sFatherName = value;
            }
        }


        public SqlString sFatherJob
        {
            get { return m_sFatherJob; }
            set
            {
                SqlString sFatherJobTmp = value;
                if (sFatherJobTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sFatherJob", "sFatherJob can't be NULL");
                }
                m_sFatherJob = value;
            }
        }


        public SqlInt32 iFatherAge
        {
            get { return m_iFatherAge; }
            set
            {
                SqlInt32 iFatherAgeTmp = value;
                if (iFatherAgeTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("iFatherAge", "iFatherAge can't be NULL");
                }
                m_iFatherAge = value;
            }
        }


        public SqlString sMotherName
        {
            get { return m_sMotherName; }
            set
            {
                SqlString sMotherNameTmp = value;
                if (sMotherNameTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sMotherName", "sMotherName can't be NULL");
                }
                m_sMotherName = value;
            }
        }


        public SqlString sMotherJob
        {
            get { return m_sMotherJob; }
            set
            {
                SqlString sMotherJobTmp = value;
                if (sMotherJobTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sMotherJob", "sMotherJob can't be NULL");
                }
                m_sMotherJob = value;
            }
        }


        public SqlInt32 iMotherAge
        {
            get { return m_iMotherAge; }
            set
            {
                SqlInt32 iMotherAgeTmp = value;
                if (iMotherAgeTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("iMotherAge", "iMotherAge can't be NULL");
                }
                m_iMotherAge = value;
            }
        }


        public SqlString sParentEmail
        {
            get { return m_sParentEmail; }
            set
            {
                SqlString sParentEmailTmp = value;
                if (sParentEmailTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sParentEmail", "sParentEmail can't be NULL");
                }
                m_sParentEmail = value;
            }
        }


       
        public DateTime daEnterDate
        {
            get { return m_daEnterDate; }
            set
            {
                
                m_daEnterDate = value;
            }
        }
        public SqlString sStatus
        {
            get { return m_sStatus; }
            set
            {
                SqlString sStatusTmp = value;
                if (sStatusTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sStatus", "sStatus can't be NULL");
                }
                m_sStatus = value;
            }
        }

        public SqlString sPicLink
        {
            get { return m_sPicLink; }
            set
            {
                SqlString sPicLinkTmp = value;
                if (sPicLinkTmp.IsNull)
                {
                    throw new ArgumentOutOfRangeException("sPicLink", "sPicLink can't be NULL");
                }
                m_sPicLink = value;
            }
        }

        public DateTime daReleaseDate
        {
            get { return m_daReleaseDate; }
            set { m_daReleaseDate = value; }
        }

        #endregion
    }
}